//package com.app.backend.Activiti;
//
//import com.app.backend.activiti.controller.ActModelController;
//import com.app.backend.activiti.controller.ActProcessController;
//import com.app.backend.activiti.service.ActProcessService;
//import lombok.extern.slf4j.Slf4j;
//import org.junit.jupiter.api.BeforeEach;
//import org.junit.jupiter.api.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.http.MediaType;
//import org.springframework.test.web.servlet.MockMvc;
//import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
//import org.springframework.test.web.servlet.setup.MockMvcBuilders;
//
//import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
//import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
//
///**
// * @program: End2End
// * @description: 从model创建->process->processIns->task 全流程demo
// * @author: Zhun.Xiao
// * @create: 2020-03-04 23:33
// **/
//
//@SpringBootTest()
//@Slf4j
//public class End2End {
//
//    MockMvc ModelControllerMoc;
//    MockMvc ProcessControllerMoc;
//
//
//    @Autowired
//    ActProcessService actProcessService;
//
//    @BeforeEach
//    public void setUp() throws Exception {
//        ModelControllerMoc = MockMvcBuilders.standaloneSetup(new ActModelController()).build();
//        ProcessControllerMoc = MockMvcBuilders.standaloneSetup(new ActProcessController()).build();
//        //创建model
//        // 直接浏览器访 /api/v1/act/model/create 访问activiti explorer,创建model后保存即可。
//        // 正式环境下需改成前后端分离模式
//
//        //部署 process
//        String responseStr = ModelControllerMoc
//                .perform(MockMvcRequestBuilders.post("/api/v1/act/model/deploy")
//                        .contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
//                        .param("id", "62501"))//model id
//                .andExpect(status().isOk()).andDo(print()).andReturn().getResponse().getContentAsString();
//        log.info("== 部署model,{}", responseStr);
//
//
//        //process 绑定节点用户
//        String bindUsersStr = ProcessControllerMoc.perform(MockMvcRequestBuilders.post("/api/v1/act/process/bindUsers")
//                .contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
//                .param("userIds", "247639230291906560,247641334603583488")
//                .param("nodeId", "sid-7B2F2AB7-CE7E-4D2E-A189-41565DCDB6FD")
//                .param("roleIds", ""))
//                .andExpect(status().isOk()).andDo(print()).andReturn().getResponse().getContentAsString();
//        log.info("== 流程节点绑定用户,{}", bindUsersStr);
//
//        //process 绑定关联数据库表+前端表路由
//        /*ActProcess leaveProcess = actProcessService.findByProcessKeyAndLatest("test_model_key", true);
//        String updateInfoStr = ProcessControllerMoc.perform(MockMvcRequestBuilders.post("/api/v1/act/process/updateInfo")
//                .contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
//                .params(leaveProcess))
//                .andExpect(status().isOk()).andDo(print()).andReturn().getResponse().getContentAsString();
//        log.info("== 流程节点绑定用户,{}", bindUsersStr);
//*/
//
//
//    }
//
//
//    @Test
//    public void testRunActDefault() {
//
//        //新建 processInstance 即发起申请
//
//        //审批节点
//
//    }
//
//    @Test
//    public void testRunActReject() {
//
//        //新建 processInstance 即发起申请
//
//        //审批退回
//    }
//
//
//}